package cn.deschen.eshop.auth.validate;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalUnit;
import java.util.concurrent.TimeUnit;

/**
 * @Author hanbin_chen
 * @Description 验证码实体类
 * @DateTime 2021/1/14 14:31
 * @Version V1.0.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ValidateCode implements Serializable {

    /**
     * 验证码
     */
    private String code;

//    todo 用于日后其他功能的补充，比如用于sesssion缓存
//    /**
//     * 过期日期
//     */
//    private LocalDateTime timeout;
//
//    public ValidateCode(String code, long timeout, TemporalUnit unit) {
//        this.code = code;
//        this.timeout = LocalDateTime.now().plus(timeout, unit);
//    }
//
//
//    public ValidateCode(String code, long timeout) {
//        this.code = code;
//        this.timeout = LocalDateTime.now().plusSeconds(timeout);
//    }
//
//
//    public ValidateCode settimeout(long timeout, TemporalUnit unit) {
//        this.timeout = LocalDateTime.now().plus(timeout, unit);
//        return this;
//    }
//
//    public ValidateCode settimeout(long timeout) {
//        return settimeout(timeout, ChronoUnit.SECONDS);
//    }
//
//    public boolean isExpired() {
//        return LocalDateTime.now().isAfter(timeout);
//    }
}
